
package com.wulian.user.service;

import com.baomidou.mybatisplus.service.IService;
import com.wulian.user.dto.DeptTree;
import com.wulian.user.entity.SysDept;

import java.util.List;
import java.util.Map;

/**
 * 
* @ClassName: SysDeptService 
* @Description: TODO(部门管理 服务类) 
* @author 马志豪
* @date 2019年9月18日 上午10:06:57 
*
 */
public interface SysDeptService extends IService<SysDept> {

    /**
     * 查询部门树菜单
     * @return 树
     */
    List<DeptTree> selectListTree(Integer deptId);

    /**
     * 组织管理 - 返回所属客户及root节点的树形组织结构
     * @return 树
     */
    List<DeptTree> selectListTree_client(Map<String,Object> map, Integer deptId);

    /**
     * 添加信息部门
     * @param sysDept
     * @return
     */
    Boolean insertDept(SysDept sysDept,Integer[] menuIdArr,Integer integer);

    /**
     * 功能描述: <br>
     * 〈添加信息部门-返回对应的主键〉
     * @Param:
     * @Return:
     * @Author: caifulin
     * @Date: 2020/10/23
     */
    Map<String,Integer> insertDept2(SysDept dept, Integer[] menuIdArr,Integer companyId);

    /**
     * 删除部门
     * @param id 部门 ID
     * @return 成功、失败
     */
    Boolean deleteDeptById(Integer id);

    /**
     * 更新部门
     * @param sysDept 部门信息
     * @return 成功、失败
     */
    Boolean updateDeptById(SysDept sysDept);

    /**
     * 查询部门
     * @param id
     * @return SysDept
     */
    SysDept selectSysDeptById(Integer id);

    /**
     * 校验机构code唯一
     *
     * @return boolean
     */
    Boolean checkCodeUnique(String deptCode);

    /**
     * 通过机构编码查询
     *
     * @param deptCode
     * @return SysDept
     */
    SysDept getSysDeptByDeptCode(String deptCode);

    /**
     *
     * @return
     */
	List<SysDept> selectSysDeptList();


    /**
     *
     * @return
     */
    Boolean updateObj(SysDept sysDept);

    List selectSysUserProjectTree(Integer deviceId,Integer userId);

    /**
     * 功能描述: <br>
     * 〈Hse-项目使用创建公司时创建对应组织及其角色〉
     * @Param:
     * @Return:
     * @Author: caifulin
     * @Date: 2020/10/22
     */
    Map<String,Integer> add( SysDept  sysDept,Integer companyId);
}
